home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Magnum One
/
Magnum One (Mid-American Digital) (Disc Manufacturing).iso
/
d6
/
glazer.arc
/
DAILYODO.BAS
< prev
next >
Wrap
BASIC Source File
|
1988-10-07
|
2KB
|
48 lines
100 'Daily Odometer ("DAILYODOMETER")
110 CLS
120 COLOR 0,15: PRINT "Daily Odometer": COLOR 15,0
130 PRINT
140 DEFINT A-Z
150 GOSUB 1000 'Get number of days in month
160 GOSUB 2000 'Let user enter starting date
170 INPUT "Number of days forward: ", DFRW
180 ' Move forward a day at a time
190 FOR N = 1 TO DFRW
200 NDAYS(2) = 28 'Adjust February for leap years
210 IF (YEAR MOD 4) = 0 AND (YEAR MOD 100) <> 0 THEN NDAYS(2) = 29
220 IF (YEAR MOD 400) = 0 THEN NDAYS(2) = 29
230 DAY = DAY + 1
240 'Move to next month if necessary
250 IF DAY > NDAYS(MONTH) THEN DAY = 1 : MONTH = MONTH + 1
260 'Move to next year if necessary
270 IF (MONTH = 13) THEN YEAR = YEAR + 1: MONTH = 1
280 NEXT N
290 ' Print target date
300 PRINT
310 PRINT "Month:";MONTH
320 PRINT "Day:";SPC(2);DAY
330 PRINT "Year:"; SPC(1); YEAR
340 END
990 ' Subroutine to set up list with number of days in months
1000 DIM NDAYS(12)
1010 FOR N = 1 TO 12
1020 READ NDAYS(N)
1030 NEXT N
1040 'Number of days in months
1050 DATA 31, 28, 31, 30
1060 DATA 31, 30, 31, 31
1070 DATA 30, 31, 30, 31
1080 RETURN
1990 ' Subroutine to let user enter date
2000 INPUT "Month (1-12): ", MONTH
2010 IF (MONTH < 1) OR (MONTH > 12) THEN PRINT " *No such month *": GOTO 2000
2020 INPUT "Day (1-31): ", DAY
2030 INPUT "Year: ", YEAR
2040 IF (YEAR < 1900) OR (YEAR > 2100) THEN PRINT "Invalid year": GOTO 2000
2050 'Check for leap year
2060 IF (YEAR MOD 4) = 0 AND (YEAR MOD 100) <> 0 THEN NDAYS(2) = 29
2070 IF (YEAR MOD 400) = 0 THEN NDAYS(2) = 29
2080 'Check for valid date
2090 IF DAY > NDAYS(MONTH) THEN PRINT "* No such day *": GOTO 2000
2100 RETURN